package algorithm;

/**
 * @Author wangtengyu
 * @Create 2018-03-22-10:38
 */
public class ChoiceSort {

    //选择排序 每次比较后最小元素在最小索引处
    public static int[] sort(int[] array){
        for(int i=0;i<array.length-1;i++){
            //定义一个min 如果排序后i=min 就不交换 提高效率
            int min=i;
            for (int j=i+1;j<array.length;j++){
                if(array[min]>array[j]){
                    min=j;
                }
            }

            if(i!=min){
                int temp=array[i];
                array[i]=array[min];
                array[min]=temp;
            }

            System.out.print("第"+(i+1)+"轮排序的结果为");
            display(array);
        }
        return array;

    }


    public static void display(int array[]){
        for(int i=0;i<array.length;i++){
            System.out.print(array[i]+" ");
        }
        System.out.println();
    }



    public static void main(String[] args) {
        int[] array = {4,2,8,9,5,7,6,1,3};
        //未排序数组顺序为
        System.out.println("未排序数组顺序为：");
        display(array);
        System.out.println("-----------------------");
        array = sort(array);
        System.out.println("-----------------------");
        System.out.println("经过选择排序后的数组顺序为：");
        display(array);
    }
}
